package com.shine.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shine.entity.User;
import com.shine.info.UserInfo;
import com.shine.request.UserPageRequest;
import com.shine.request.UserUpdateRequest;
import com.shine.security.UserPrincipal;

/**
 * @author huihui
 * @date 2025/10/11 15:44
 * @description UserService
 */
public interface UserService extends IService<User> {

    /**
     * 分页查询用户表
     *
     * @param request
     * @return
     */
    IPage<UserInfo> pageQuery(UserPageRequest request);

    /**
     * 详情查询用户表
     *
     * @param id
     * @return
     */
    UserInfo getById(Long id);

    /**
     * 根据ID删除用户表
     *
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    UserPrincipal getUser(String username);

    Boolean updateUser(UserUpdateRequest request);

}
